<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>循环</title>
	</head>
	<body>
	</body>
</html>
<script type="text/javascript">
	/*
	循环不变式：
		每次循环结束，存在一个已经排序的列表和一个未排序的列表，j指向下一个未排序的数字
	
	*/
	// 插入排序
	function insert_sort(arr) {
		for (var j = 1; j < arr.length; j++) {
			// 记录值的
			const key = arr[j]
			// 记录前一位
			let i = j - 1
			// 索引必须大于等于0，排序arr[i] > key,只有在前一位大于后一位的时候才需要位置交换
			while (i >= 0 && arr[i] > key) {
				arr[i + 1] = arr[i]
				i--
			}
			arr[i + 1] = key
		}
	}
	// insert_sort([3,2,1])
	var Object1 = {
		a: '',
		b: '',
		c: ''
	}

	function setObject(val) {
		// for (key in val) {
		// 	if (key in Object1) {
		// 		console.log('key_true', key)
		// 		Object1[key]=val[key]
		// 	} else {
		// 		console.log("key", key)
		// 		// Object1[key]=val[key]
		// 	}
		// }
		// console.log("Object1", Object1)
		for (key in Object1) {
			if (key in val) {
				console.log('key_true', key)
				Object1[key] = val[key]
			} else {
				console.log("key", key)
				 Object1[key]=''
			}
		}
		console.log("Object1", Object1)
	}
	var Object2 = {
		a: 1,
		b: 2,
		c: 3
	}
	setObject(Object2)
	var Object3 = {
		a: 2,
		b: 3,
	}
	setObject(Object3)
</script>
